package com.zx.niuke;

/**
 * 假设你有一个数组prices，长度为n，其中prices[i]是股票在第i天的价格，请根据这个价格数组，返回买卖股票能获得的最大收益
 * 1.你可以买入一次股票和卖出一次股票，并非每天都可以买入或卖出一次，总共只能买入和卖出一次，且买入必须在卖出的前面的某一天
 * 2.如果不能获取到任何利润，请返回0
 * 3.假设买入卖出均无手续费
 */
public class TradeStock {

    public int maxProfit(int [] prices){
      int minPrices=prices[0];
      int max=0;
      for (int i=0;i<prices.length;i++){
          //寻找最低点
          if (prices[i]<minPrices){
              minPrices=prices[i];
          }else if (prices[i]-minPrices>max){
              max=prices[i]-minPrices;
          }
      }
      return max;
    }
    public static int maxProfits(int prices[]){
        int max=0;
        int min=Integer.MAX_VALUE;
        for (int i = 0; i < prices.length; i++) {
            max = Math.max(max, prices[i] - min);
            min=Math.min(min,prices[i]);
        }
        return max;
    }

    public static void main(String[] args) {
        TradeStock tradeStock = new TradeStock();
        int arr[]={3,9,2,5,4,7,10};
        System.out.println(tradeStock.maxProfit(arr));
    }
}
